#ifndef APPLICATION_CHANNEL_OUTPUT_H
#define APPLICATION_CHANNEL_OUTPUT_H

#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif

#include "../Middleware/sys_param/sys_param.h"
#include "../Drivers/BSP/PWMDAC/pwmdac.h"
#include "../Drivers/BSP/DAC/bsp_dac.h"
#include "../Drivers/BSP/ADC/bsp_adc.h"

void ChannelOutput_ApplyAll(void);                              /* 应用所有通道输出到硬件 */
void ChannelOutput_SetVoltage(uint8_t channel, uint16_t value); /* 设置指定通道电压输出值（并保存参数） */
void ChannelOutput_SetCurrent(uint8_t channel, uint16_t value); /* 设置指定通道电流输出值（并保存参数） */
uint16_t ChannelOutput_GetVoltage(uint8_t channel);             /* 获取指定通道电压输出值 */
uint32_t ChannelOutput_GetCurrent(uint8_t channel);             /* 获取指定通道电流输出值 */
float ChannelOutput_GetActualOutput(uint8_t channel);           /* 获取指定通道实际输出值（从硬件读取） */

#ifdef __cplusplus
}
#endif

#endif
